package me.green.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

/**
 * 数据库连接类
 *
 * @author green
 */
public class BaseDB {
    /*
     * 加载数据库驱动
     */
    static {
        try {
            // JDK1.6环境支持
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

    /**
     * 获取数据库连接
     *
     * @return
     */
    @Deprecated
    public static Connection getConnection(boolean compatible) {
        if (compatible == false) {
            return getConnection();
        }
        // 得到默认的数据库文件路径
        String url = System.getProperty("user.dir") + "\\data\\smile.mdb";
        Connection conn = null;
        try {
            if (conn == null) {
                // Windows XP
                String defaultAccessPassword = "LifeIsGood";
                String odbcUrl = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=" + url + ";pwd=" + defaultAccessPassword;
                conn = DriverManager.getConnection(odbcUrl);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return conn;
    }

    /**
     * 获取数据库连接
     *
     * @return
     */
    public static Connection getConnection() {
        Connection conn = null;
        try {
            if (conn == null) {
                // Windows 10 ODBC连接方式发生改变，需要通过 C:\Windows\SysWOW64\odbcad32.exe 对用户数据源进行配置
                // 如果配置过程中发现没有access driver选项，注意下载安装AccessDatabaseEngine，根据系统选择对应32位或64位版本
                String odbcUrl = "jdbc:odbc:SMILE";
                conn = DriverManager.getConnection(odbcUrl);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return conn;
    }

    /**
     * 关闭数据库连接
     */
    public static void release(Connection conn) {
        try {
            conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
